﻿using System;
using Microsoft.WindowsAzure;
using Microsoft.WindowsAzure.StorageClient;

namespace Nardax.Azure.StorageClient
{
    public interface ICloudQueueClient
    {
        ICloudQueue GetQueueReference(string queueAddress);

        ICloudQueue<T> GetQueueReferenceWithBinarySerializer<T>(string queueAddress);

        ICloudQueue<T> GetQueueReferenceWithXmlSerializer<T>(string queueAddress);

        TimeSpan ApproximateMessageCountCacheLength { get; set; }

        StorageCredentials Credentials { get; }

        RetryPolicy RetryPolicy { get; set; }

        TimeSpan Timeout { get; set; }

        bool UsePathStyleUris { get; }
    }
}